//
//  UIImage+Gradient.h
//  CAICategories
//
//  Created by 海参 on 2022/8/30.
//  Copyright © 2022 com.Chs. All rights reserved.
//

#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

///渐变image的渐变方向
typedef NS_ENUM(NSInteger, ZXGradientImageDirection) {
    ZXGradientImageDirectionVertical,
    ZXGradientImageDirectionHorizontal
};


@interface UIImage (Gradient)


/**
 绘制多个位置的渐变颜色的image:几个位置就几种颜色，系统方法就会根据这几种颜色之间的差距过渡渐变过来；
 const CGFloat location[] ={0,1};
 const CGFloat components[] ={
 255.f/255,67.f/255,82.f/255,1,
 243.f/255,19.f/255,37.f/255,1
 };
 UIImage *backgroundImage = [UIImage zx_gradientImageWithSize:CGSizeMake(200, 36) locations:location components:components count:2 directionType:ZXGradientImageDirectionVertical];
 
 @param size 上下文size
 @param locations 颜色所在位置（范围0~1）
 @param components 颜色数组
 @param count 渐变个数，等于locations的个数
 @param directon 方向
 @return return value description
 */
+ (UIImage *)zx_gradientImageWithSize:(CGSize)size
                               locations:(const CGFloat[_Nullable])locations
                              components:(const CGFloat[_Nullable])components
                                   count:(NSInteger)count
                           directionType:(ZXGradientImageDirection)directon;

/**
 绘制2个位置的水平渐变颜色的image；根据开始颜色和结束颜色，获取一个渐变图UIImage对象；
 利用
 zx_gradientImageWithSize:(CGSize)size
 locations:(const CGFloat[])locations
 components:(const CGFloat[])components
 count:(NSInteger)count directionType:(ZXGradientImageDirection)directon方法；
 @param size 上下文绘画的size空间
 @param startColor 开始颜色
 @param endColor 结束颜色
 @return 渐变图UIImage对象
 */
+ (UIImage *)zx_gradientHorizontalDoubleColorImageWithSize:(CGSize)size
                                                startColor:(UIColor *)startColor
                                                  endColor:(UIColor *)endColor;


/**
 绘制2个位置的垂直渐变颜色的image
 */
+ (UIImage *)zx_gradientVerticalDoubleColorImageWithSize:(CGSize)size
                                                topColor:(UIColor *)topColor
                                             bottomColor:(UIColor *)bottomColor;


@end

NS_ASSUME_NONNULL_END
